package com.sgx.learning.luban.homework.attributes.ext.stackmapframe.checkvariable;

import lombok.Data;

import java.io.IOException;
import java.io.InputStream;

@Data
public abstract class VerificationTypeInfo {
    public static final byte TOP_VARIABLE_INFO = (byte)0b00000000;
    public static final byte INTEGER_VARIABLE_INFO = ((byte)0b00000001);
    public static final byte FLOAT_VARIABLE_INFO = ((byte)0b00000010);
    public static final byte LONG_VARIABLE_INFO = ((byte)0b00000100);
    public static final byte DOUBLE_VARIABLE_INFO = ((byte)0b00000011);
    public static final byte NULL_VARIABLE_INFO = ((byte)0b00000101);
    public static final byte UNINITIALIZED_THIS_VARIABLE_INFO = ((byte)0b00000110);
    public static final byte OBJECT_VARIABLE_INFO = ((byte)0b00000111);
    public static final byte UNINITIALIZED_VARIABLE_INFO =((byte)0b00001000);

    private byte tag;

    public abstract void read(InputStream is) throws IOException;
}
